package com.finalcial.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * 对应补单界面
 * @author Administrator
 *
 */
public interface SingleDao {
	/**申请界面信息
	 * 根据员工的id查询出所有的报销信息(直接查询报销表的id)session 
	 * @param userId 用户id
	 * @return 报账人姓名  报账名称(报销类型名 用户名) 报账id 金额 审批状态
	 * 
	 */
	public List<Map<String, Object>> listSingMsgByStaff(@Param("userId")Integer userId ,@Param("startPos") Integer startPos, @Param("pageSize")Integer pageSize);

	/**
	 * 根据报销id找出所有的申报信息
	 * @param userId 用户id
	 * @return 报账人姓名  报账名称(报销类型名  用户名) 报账id 金额 审批状态 待阅或者已阅
	 *
	 */
	//public List<Map<String, Object>> listSingMsg(Integer userId);
	
	/**
	 * 申报信息界面
	 * 通过名字和金额区间 处理状态查询出相应的数据
	 * @param userName 用户姓名
	 * @param startMoney 金额
	 * @param EndMoney 金额
	 * @param approvalStateName 处理状态
	 * 
	 * @return 报销的数据
	 */
	public List<Map<String , Object>> getSingMsg(@Param("userId")Integer userId,@Param("userName")String userName,@Param("startMoney")Integer startMoney,@Param("EndMoney")Integer EndMoney,@Param("approvalStateName")String approvalStateName,@Param("reimbursementTypeName")String reimbursementTypeName);
	
	/**
	 * 点击补单按钮 
	 * 增加补单的信息
	 * @param reimbursementId 报销id
	 * @param supplementReason 补单的原因
	 * @param invoiceIdExplain 补单说明
	 * @param invoiceNumber 补单张数
	 * @param supplementTime 补单发起时间
	 * @param invoiceMoney 补单金额（票据金额）
	 * @return 
	 */
	public Integer insertsupplementMs(@Param("userId")Integer userId,@Param("reimbursementId")String reimbursementId,@Param("supplementReason") String supplementReason,@Param("invoiceIdExplain")String invoiceIdExplain,@Param("invoiceNumber")Integer invoiceNumber,@Param("supplementTime")Date supplementTime,@Param("invoiceMoney")Integer invoiceMoney);
	/**
	 * 增加补单的时候修改报销表的金额不含税
	 * @param reimbursementId 报销id
	 * @param invoiceMoney 补单金额
	 * @return 
	 */
	public Integer updateReimbursemenMoney(@Param("reimbursementId")String reimbursementId,@Param("invoiceMoney")Integer invoiceMoney);
	
	/**
	 * 查询补单界面信息总条数
	 * @param userId
	 * @return
	 */
	public Integer listSingMsgByStaffCounts(@Param("userId")Integer userId);
}
